python:动态参数*args | 您所在的位置:网站首页 › python return selffunc args › python:动态参数*args |
def func(name, age, sex='male', *args, **kwargs):
pass
*args 一个星号表示接收任意个参数。调用时,会将实际参数打包成一个元组传入形式参数。如果参数是个列表,会将整个列表当做一个参数传入。例如: def func(*args): """ *表示接收任意个数量的参数,调用时会将实际参数打包为一个元组传入实参 :param args: :return: """ print args for i in args: print i func({'name': 'kobe'}, 123, 'hello', ['a', 'b', 'c'])
运行结果: ({'name': 'kobe'}, 123, 'hello', ['a', 'b', 'c']) {'name': 'kobe'} 123 hello ['a', 'b', 'c']可以看到,先打印了args参数,是一个元组,再分别打印了传入的每个参数。 有时候我们传入一个列表,本意是希望将列表中的所有元素都当做参数传递进去,这里直接将['a', 'b', 'c']看做一个整体了,怎么办? 其实只需要在调用时前面加一个*号,就能实现将列表中的每个元素传递进去了。 其实不光列表,任何序列类型数据对象,比如字符串、元组都可以通过这种方式将内部元素逐一作为参数,传递给函数。而字典,则会将所有的key逐一传递进去。 def func(*args): """ *表示接收任意个数量的参数,调用时会将实际参数打包为一个元组传入实参 :param args: :return: """ for i in args: print i func(*['a', 'b', 'c'])输出结果: a b c特别的,调用时只能有一个参数前添加*号,且必须放在最后面 def func(*args): """ *表示接收任意个数量的参数,调用时会将实际参数打包为一个元组传入实参 :param args: :return: """ for i in args: print i func(123, 'hello', ['a', 'b', 'c'], *{'name': 'kobe', 'age': 41})输出:将字典的key值作为参数传入了 123 hello ['a', 'b', 'c'] age name
|
CopyRight 2018-2019 实验室设备网 版权所有 |